<?php

	/**
	 * File : mysql.php
	 * Description : Fonctions d'accès aux données via MySQL
	 * Date : 07.08.2012 14:54:34
	 * 
	 * This file is part of Phenix.  Phenix is free software: you can
	 * redistribute it and/or modify it under the terms of the GNU General Public
	 * License as published by the Free Software Foundation, version 2.
	 *
	 * This program is distributed in the hope that it will be useful, but WITHOUT
	 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
	 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
	 * details.
	 *
	 * You should have received a copy of the GNU General Public License along with
	 * this program; if not, write to the Free Software Foundation, Inc., 51
	 * Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
	 *
	 * Copyright Nils Schaetti <n.schaetti@gmail.com>
	**/

	/****************************************
	 * Fonction d'accès aux données via MYSQL
	 ****************************************/

	/*
	 * Les requêtes SQL
	 */
	require_once('mysql_requests.php');

	/**
	 * Permet de se connecter à la base de données
	 *
	 * @return integer Connection handler
	 */
	function ktkConnectDB()
	{
		global $db_host, $db_user, $db_password, $db_name;
		// Connexion
		$db = @mysql_connect($db_host,$db_user,$db_password)
			or die('Connexion à la base de donnée impossible');

		// Sélectionne la base de donnée
		@mysql_select_db($db_name,$db)
			or die('Sélection de la base de donnée impossible');

		// Retourne le lien de connexion
		return $db;
	}

	/**
	 * Permet de se déconnecter de la base de donnée
	*/
	function ktkCloseDB()
	{
		mysql_close();
	}

	/**
	 * Récupère les données d'une table
	 */
	function ktkExecSQL($query,&$data,&$num_rows)
	{
		$result_id = mysql_query($query)
			or die('erreur mysql_query ' . mysql_error() . '<br>');

		// Récupère les résultats
		while($row = mysql_fetch_assoc($result_id))
			$data[] = $row;

		// Nombre d'enregistrements
		$num_rows = mysql_num_rows($result_id);
	}
	
	/**
	 * Retourne les information sur un utilisateur par son nom
	 *
	 * @param string $username Le nom d'utilisateur
	 * @return array Informations sur l'utilisateur
	 */	 
	function ktkGetUserByName($username)
	{
		// Retrouve l'utilisateur grâce au nom
		ktkExecSQL(getUserRequest($username),&$data,&$num_rows);
		// Retourne l'id
		return($data[0]);
	}
	
	/**
	 * Enregistre une session de login dans la base
	 *
	 * @param string $uid UID de l'utilisateur
	 * @param string $ip_address IP de l'utilisateur
	 * @return boolean True si ok, false sinon
	 */
	function ktkSaveSession($uid, $ip_address)
	{
		// Crée la session
		ktkExecSQL(createSessionRequest($uid),&$data,&$num_rows); 
	}
	
	/**
	 * Est-ce qu'un utilisateur existe
	 *
	 * @param string $username Nom d'utilisateur
	 * @return boolean VRAI si existe, FAUX sinon
	 */
	function ktkUserExists($username)
	{
		// Cherche l'utilisateur
		ktkExecSQL(getUserRequest($username),&$data,&$num_rows);
		
		// Pas d'utilisateur
		if($num_rows < 1)
			return(false);
			
		return(true);	
	}
	
	/**
	 * Retourne le mot de passe d'un utilisateur
	 *
	 * @param string $username Nom d'utilisateur
	 * @return string Mot de passe (crypté)
	 */
	function ktkGetPassword($username)
	{
		// Cherche le mot de passe
		ktkExecSQL(getUserRequest($username),&$data,&$num_rows);
		return($data[0]['password']);
	}

?>

